package com.itfenghuang.day21;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class A01_JDBC事务 {
    /*
    1.什么是事务?
        将一组操作看做一个整体,要么都执行,要么都不执行
    2.事务特性:
        1).原子性
        2).事务性
        3).隔离性
        4).持久性
    3.隔离级别: 读未提交   读已提交   可重复度  串行化
        mysql默认隔离级别:可重复度
        sql server oracle:读已提交
    4.jdbc操作事务
        使用连接对象操作事务
            jdbc要操作事务的前提条件:必须是同一个连接对象
     */
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.jdbc.Driver");
        Connection rt = DriverManager.getConnection
                ("jdbc:mysql://127.0.0.1:3306/fh_day03",
                        "root", "123456");
//        开启事务
//        默认是true 都执行 false都不执行
        rt.setAutoCommit(false);
        String username="狗屎粑粑";
        String psaawrod="0438";
        String sql="insert into user(username,psaawrod) values(?,?)";
        PreparedStatement pt = rt.prepareStatement(sql);
        pt.setString(1,username);
        pt.setString(2,psaawrod);
        int i = pt.executeUpdate();
        
        String username1="小乌龟";
        String psaawrod1="3840";
        String sql1="insert into user(username1,password1) values(?,?)";
        PreparedStatement pt1 = rt.prepareStatement(sql);
        pt1.setString(1,username1);
        pt1.setString(2,psaawrod1);
        int i1 = pt1.executeUpdate();
//        手动提交事务
        rt.commit();
        rt.close();


    }
}
